home *** CD-ROM | disk | FTP | other *** search
- NET and BM ported to the Atari ST
-
- by R.E. Janssen, PE1CHL.
-
- The NET and BM programs have been ported to the Atari ST series
- of computers. All models of the ST series (260, 520, 1040 and
- MEGA) are basically the same, and the programs should run on all
- versions, both with TOS in RAM, and the original or the "blitter
- TOS" in ROM. The programs have been compiled using Mark Williams
- C version 2.1.7. Other compilers require quite some changes to
- many modules, so I recommend sticking with MW if you want to
- recompile the package.
-
-
- Changes made when porting to the Atari ST
-
- - Because the Atari ST is sold with the GEM Desktop as the
- primary user interface, no "standard" command processor
- exists that can be called from NET and BM when a subshell is
- requested. However, several command processors exist, both
- available commercially and in the public domain. Therefore,
- a variant of the "shell" command has been implemented in
- NET, that allows you to set the pathname of the program to
- be executed as a command processor. The syntax is:
-
- shell =pathname
-
- This statement can be included in the autoexec.net file.
- Example:
-
- shell =c:\toolkit\command.tos
-
- No equivalent syntax has been built in BM, I thing the
- configuration file access routines should be made somewhat
- more sophisticated, before adding too many optional
- reconfiguration commands. Work still to be done...
-
- - This implementation only knows about "asy" hardware. 2
- ports are defined, one being the RS232 serial port, and the
- other the MIDI serial port. Both can be used for KISS or
- SLIP links.
-
- The RS232 port can be attached with:
-
- attach asy 0 0 ax25 ax0 2048 256 9600
-
- This attaches the port for ax25 (KISS) operation, as device
- ax0, with a 2048byte buffer, an MTU of 256, and a baudrate
- of 9600 bauds.
- The RS232 port is accessed using "hardware address" 0. This
- does not represent the physical location of the chip, but
- rather the device number used in the Atari Iorec() call...
- Valid baudrates are 300, 600, 1200, 1800, 2000, 2400, 3600,
- 4800, 9600 and 19200 bauds.
-
- The MIDI port can be attached with:
-
- attach asy 2 0 ax25 ax1 2048 256 9600
-
- This port uses the same parameter structure as the RS232
- port attach command. The "hardware address" is 2.
- Some restrictions apply to the usage of this port:
-
- - The baudrate is only settable to 7812 or 31250 bauds. A
- simple hardware modification makes it possible to
- change this to 9600 or 38400 bauds, but the software
- can't tell the difference, so it will blindly accept
- all 4 mentioned values for the baudrate, assuming that
- you installed the mod if you specify 9600 or 38400.
-
- - Of course, the interface on this port is a 5mA current
- loop, so you will need an external conversion circuit
- if you want to connect this to an RS232 TNC. Please
- note, that "current ON" on the midi port corresponds to
- a positive voltage on the RS232 pins, this is reverse
- from "normal" current loop operation as used with
- teleprinters and the like.
-
- - The transmit routine on this port does not use
- interrupts, but it busy-waits for each character in a
- frame. This is because the interrupt handler for the
- serial chip used on MIDI is shared with the
- keyboard/mouse interrupt handler, and it does not
- support transmitter interrupts....
-
- The MIDI port CAN be used to link two STs using SLIP, and no
- hardware mods are necessary. Only connect 4 wires between
- the MIDI ports on the machines (from MIDI IN to MIDI OUT and
- vice versa) and use the following attach command:
-
- attach asy 2 0 slip sl0 4096 576 31250
-
- - End-of-line conventions. Some extra work has gone in
- attempts to correct the end-of-line sequences generated by
- the RECORD commands form AX.25 and TELNET, and the ASCII
- type file transfer from FTP. As observed by Phil, the whole
- mess of CR/LF handling has been neatly avoided by UNIX, but
- we poor souls using MS-DOS (or Atari TOS) need to solve the
- problem in some way. On the Mark Williams compiler for the
- ST, the default open mode for files is "text mode", and in
- this case all \n characters get translated to CR/LF pairs in
- the file, and vice-versa. This means that writing CR/LF in
- text mode results in CR/CR/LF in the file. You can open the
- file in "binary mode" (using "wb" in the fopen call), and
- the characters will be written untranslated. This seems to
- be more like the behaviour of Aztec C, so I used the binary
- mode as a temporary fix for the problems with RECORD mode,
- but this should really be fixed in the code at the
- appropriate place. I did some work in the code for AX.25
- mode, but commented it out for now. The TELNET code still
- needs to be converted. IF you want to get this correct in
- the UNIX version, it should be fixed because UNIX does not
- know about "file modes" and always writes what you tell it
- to write...
-
- - BM file naming conventions have been changed to allow use of
- the program on non-DOS environments, using the same approach
- as in the NET program (871225 release). Module "files.c" is
- now also used by BM, and in defines all filenames and
- directory names used in the program. The bm_rc[] definition
- has been added for this purpose. Please note, that
- directory names also include the trailing \ or / character,
- this is because the separator character used differs between
- DOS, UNIX and Atari TOS. This also means that the syntax of
- the "smtp" command in the BM.RC file has changed, it now
- should also include the trailing separator. In fact, the
- smtp command is not really necessary because the default
- value is now equal to the value used by NET.
-
- - DIRUTIL.C has been revised to run on both MS-DOS and Atari
- TOS, and some cleanup has been done on the code. Now, it is
- possible to define the character used to separate the digits
- in large numbers, by compiling with -DTHSEP="'.'"
-
- - BM now uses NET's version of DIRUTIL.C. This module could
- be split up to avoid inclusion of directory print routines.
-
- - An extra option has been added to BM.RC:
-
- tz TIM
-
- sets the timezone used in date/time strings produced by BM.
- This was necessary because no standard way has been defined
- to add values to the top-level environment of the ST
- operating system, so the getenv() would always fail if you
- started BM from the desktop. Now, you can define your local
- timezone in BM.RC (should be 3 characters, e.g. GMT, WET).
-
- - Changes were made to GLOBAL.H because of bugs in the Mark
- Williams C compiler:
-
- - the construct 'x >> 16' confuses the optimizer,
- therefore the hiword define has been changed to a
- function, and the shift is coded differently in this
- function (atari.c)
-
- - the compiler doesn't like void pointers to be further
- typecasted. (as in: (struct mbuf **) (void *) 0)
- therefore, the general purpose pointer has been changed
- to char * type.
-
- - STILL EXPERIMENTAL: Desktop accessory version
- I'm working on a version of NET that can run as a desktop
- accessory on the ST. The code is included with this
- version, and can be comiled by defining the GEMDESK
- preprocessor symbol. An entry in the makefile, NET.ACC,
- provides for this. The resulting program still has some
- problems. Be careful when running programs with NET.ACC in
- the background...
- The accessory version defines a window that can be popped up
- by selecting the entry in the Desk menu. It will also be
- popped up automatically when the NET program prints a bell,
- usually when a new connection comes in.
- The file search algorithm is different from the TOS version:
- on startup, after a 5 second delay to allow other programs
- to initialize, the program searches the drives looking for a
- file \NET\AUTOEXEC.NET, and assumes the drive on which this
- file is found will also contain all other files. (This
- mechanism is only used on hard-disk systems).
- One of the problems of the accessory version is that the
- current directory will be changed when the foreground
- program does a Dsetpath function, and you may confuse the
- foreground program when you change directory in the
- accessory. This is because only one 'current directory' is
- kept in the system.
-
-
-
- Installation on an Atari ST
-
- The Atari ST implementation assumes the following directory
- structure:
-
- On the disk (any disk- can be floppy, harddisk or RAMdisk) a
- directory named "net" must be created directly under the root
- directory. This directory contains:
-
- \net:
- autoexec.net - NET configuration file
- bm - (directory containing sources for BM)
- bm.rc - BM configuration file
- bm.tos - the BM program
- des - (directory containing DES sources)
- doc - (directory containing documentation)
- ftpusers - FTP configuration file
- hosts.net - IP configuration file
- mail - directory for incoming mail
- mbox - (default mailbox file for BM)
- mqueue - directory for outgoing mail
- net.log - (NET logfile)
- net.tos - the NET program
- rqueue - directory used for mail routing
- src - (directory containing NET sources)
- tmp - directory for temporary files
-
- Items in parentheses are optional, or will be created
- automatically when you run the programs. The contents of the
- mentioned directories are:
-
- \net\bm:
- bm.h - BM sourcefiles
- bmutil.c -
- header.c -
- header.h -
- main.c -
- makefile -
- send.c -
- version.c -
- + objectfiles, when the package has been compiled
-
- \net\des:
- ... DES sourcefiles and uuencode/uudecode ...
-
- \net\doc:
- ... Documentation files ...
-
- \net\mail:
- yourname.txt - created by SMTP server for incoming mail
-
- \net\mqueue:
- sequence.seq - sequence number for outgoing mail,
- maintained by BM
-
- \net\src:
- ... Sources for NET ...
-
- \net\tmp:
- ... Tempfiles created here, any files remaining after exit from
- NET and BM can be removed ...
-
-
-
- Changes to the above directory structure can be made only when
- the NET sourcefile, files.c, is edited, and everything is
- recompiled.
- To install the package on a disk, make all mentioned directories
- (e.g. using the "New Folder" command on the desktop), and copy
- the files in the proper directory.
- To run NET or BM, double-click on the icon, or type NET or BM
- while in some command processor. When using a command processor,
- make sure the current disk is the disk on which the \NET
- directory can be found.
-
-
-
-
- Example configuration file AUTOEXEC.NET, used on my own machine
-
- [ now distributed as some separate files ]
-
- Example BM.RC from my machine
-
- ; configuration file for Bdale's Mailer...
- host pe1chl.PA_UTnet.ampr
- user rob
- fullname R.E. Janssen (PE1CHL)
- reply rob@pe1chl
- edit c:\toolkit\tempus.prg
- ; smtp d:\net\mail\
- maxlet 100
- tz WET
-
-